/* 
Framework: None
Technology stack: None
*/

#include <iostream>
#include <vector>
#include <string>
#include <regex>

void analyzeWords(std::string text) {
    if (text.empty() || text.find(" ") == std::string::npos) {
        std::cout << "Мало данных для анализа" << std::endl;
        return;
    }
    
    std::vector<std::string> words;
    std::string word;
    
    for (size_t i = 0; i < text.size(); i++) {
        if (text[i] == ' ') {
            words.push_back(word);
            word = "";
        } else {
            word += text[i];
        }
    }
    
    words.push_back(word);
    
    int numWords = words.size();
    int numCapitalCyrillic = 0;
    int numLatinSymbols = 0;
    int numShortWords = 0;
    int numHyphenWords = 0;
    
    std::string longestWord = "";
    int longestWordLength = 0;
    
    for (const std::string& w : words) {
        if (std::regex_match(w[0], std::regex("[А-Я]"))) {
            numCapitalCyrillic++;
        }
        
        if (std::regex_search(w, std::regex("[a-zA-Z]"))) {
            numLatinSymbols++;
        }
        
        if (w.size() <= 3) {
            numShortWords++;
        }
        
        if (w.find('-') != std::string::npos) {
            numHyphenWords++;
        }
        
        if (w.size() > longestWordLength) {
            longestWord = w;
            longestWordLength = w.size();
        }
    }
    
    std::cout << "Кол-во слов: " << numWords << std::endl;
    std::cout << "Кол-во слов с заглавной кириллической буквы: " << numCapitalCyrillic << std::endl;
    std::cout << "Кол-во слов содержащих латинский символ: " << numLatinSymbols << std::endl;
    std::cout << "Кол-во слов не превышающих 3 символа: " << numShortWords << std::endl;
    std::cout << "Кол-во слов в составе которых имеется дефис: " << numHyphenWords << std::endl;
    std::cout << "Самое длинное слово: " << longestWord << std::endl;
    std::cout << "Длина слова: " << longestWordLength << std::endl;
}

int main() {
    std::string text;
    std::cout << "Введите слова, разделенные пробелом: ";
    std::getline(std::cin, text);
    
    analyzeWords(text);
    
    return 0;
}